
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import javax.swing.JOptionPane;

public class Inicio {

    private RandomAccessFile inicio;
    private File arquivo;
    private final String caminho = "inicio.dat";

    public Inicio() {
        try {
            arquivo = new File(caminho);
            if (!arquivo.exists()) {
                arquivo.createNewFile();
            }
            inicio = new RandomAccessFile(arquivo, "rw");
        } catch (FileNotFoundException e) {
            JOptionPane.showMessageDialog(null, "Arquivo de Inicio nao Encontrado", "Erro", JOptionPane.ERROR_MESSAGE);
        } catch (IOException e) {
        }
    }

    public String getCaminho() {
        return caminho;
    }

    public long getInicio() {
        long ponteiro = 0;
        try {
            if (inicio.length() > 0) {
                inicio.seek(0);
                ponteiro = inicio.readLong();
            }
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, "Erro ao ler arquivo de Inicio\n\n Error: " + e.getMessage());
        }
        return ponteiro;
    }

    public long getTamanhoLista() {
        long temanho = 0;
        try {
            if (inicio.length() > 0) {
                inicio.seek(8);
                temanho = inicio.readLong();
            }
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, "Erro ao ler arquivo de Inicio\n\n Error: " + e.getMessage());
        }
        return temanho;
    }

    public void setInicio(long ponteiro) {
        try {
            inicio.seek(0);
            inicio.writeLong(ponteiro);
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, "Erro ao ler arquivo de Inicio\n\n Error: " + e.getMessage());
        }
    }

    public void inc() {
        long tamanhoAux = getTamanhoLista() + 1;
        try {
            inicio.seek(8);
            inicio.writeLong(tamanhoAux);
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, "Erro ao ler arquivo de Inicio\n\n Error: " + e.getMessage());
        }
    }

    public void dec() {
        long tamanhoAux = getTamanhoLista() - 1;
        try {
            inicio.seek(8);
            inicio.writeLong(tamanhoAux);
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, "Erro ao ler arquivo de Inicio\n\n Error: " + e.getMessage());
        }
    }
}
